<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace app\components\baseviewlist;
use Yii;
use app\components\Lcms;
use app\models\Upfile;
/**
 * Description of UpImgfile
 *
 * @author shuai
 */
class UpImgfile {
    /**
     * 是否记录数据库，方便管理
    */
    private $jilu=true;
    public function upimg(){
   $save_path = Yii::getAlias('@webroot').'/public/Uploads/';
    /// $save_path = DIR_fileWEB.'/public/Uploads/';
  /////      $save_path='./public/Uploads/';
   ///   echo $save_path;exit;
        ///echo $save_path;
        //文件保存目录URL
        $save_url = Lcms::getWeb(). 'public/Uploads/';
        ///$save_url = $php_url . '../../Uploads/';
        //定义允许上传的文件扩展名
        $ext_arr = array(
                'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),
        //	'flash' => array('swf', 'flv'),
        //	'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),
                //'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2'),
        );
        //最大文件大小
         //最大文件大小
        $max_size = 1024*1024*3;

        if (!empty($_FILES['imgFile']['error'])) {
                switch($_FILES['imgFile']['error']){
                        case '1':
                                $error = '超过php.ini允许的大小。';
                                break;
                        case '2':
                                $error = '超过表单允许的大小。';
                                break;
                        case '3':
                                $error = '图片只有部分被上传。';
                                break;
                        case '4':
                                $error = '请选择图片。';
                                break;
                        case '6':
                                $error = '找不到临时目录。';
                                break;
                        case '7':
                                $error = '写文件到硬盘出错。';
                                break;
                        case '8':
                                $error = 'File upload stopped by extension。';
                                break;
                        case '999':
                        default:
                                $error = '未知错误。';
                }
                self::alert($error);
        }

        //有上传文件时
        if (empty($_FILES) === false) {
                //原文件名
                $file_name = $_FILES['imgFile']['name'];
                //服务器上临时文件名
                $tmp_name = $_FILES['imgFile']['tmp_name'];
                //文件大小
                $file_size = $_FILES['imgFile']['size'];
                //检查文件名
                if (!$file_name) {
                        self::alert("请选择文件。");
                }
                /*
                //检查目录
                if (@is_dir($save_path) === false) {
                        self::alert("上传目录不存在。");
                }
                //检查目录写权限
                if (@is_writable($save_path) === false) {
                        self::alert("上传目录没有写权限。");
                }*/
                //检查是否已上传
                if (@is_uploaded_file($tmp_name) === false) {
                        self::alert("上传失败。");
                }
                        
                //检查文件大小
                if ($file_size > $max_size) {
                        self::alert("上传文件大小超过限制。");
                }
                //检查目录名
                $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']);
                if (empty($ext_arr[$dir_name])) {
                        self::alert("目录名不正确。");
                }
                //获得文件扩展名
                $temp_arr = explode(".", $file_name);
                $file_ext = array_pop($temp_arr);
                $file_ext = trim($file_ext);
                $file_ext = strtolower($file_ext);
             
                //检查扩展名
                if (in_array($file_ext, $ext_arr[$dir_name]) === false) {
                        self::alert("上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $ext_arr[$dir_name]) . "格式。");
                }
             
                //创建文件夹
                if ($dir_name !== '') {
                        $save_path .= $dir_name . "/";
                        $save_url .= $dir_name . "/";
                        if (!file_exists($save_path)) {
                      //  echo $save_path;exit;
                                mkdir($save_path);
                        }
                }
                $ymd = date("Ymd");
                $save_path .= $ymd . "/";
                $save_url .= $ymd . "/";
                if (!file_exists($save_path)) {
                        mkdir($save_path);
                }
                //新文件名
                $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
                //移动文件
                $file_path = $save_path . $new_file_name;
                if (move_uploaded_file($tmp_name, $file_path) === false) {
                    self::alert("上传文件失败。");
                }//// 
                @chmod($file_path, 0644);
                $file_url = $save_url . $new_file_name; 
                header('Content-type: text/html; charset=UTF-8');
                Upfile::addjilu($file_path, $file_url);
                 echo json_encode(array('error' => 0, 'url' => $file_url));
              Yii::$app->end();    
        }
  }
  
     static function alert($msg) {   
	header('Content-type: text/html; charset=UTF-8');
        echo json_encode(array('error' => 1, 'message' => $msg));
        Yii::$app->end();    
   }
}
